﻿/************************************************************************
** 文  件：
**	ModelInfo.h
** 功  能：
**	AI模型信息实体类
** 作  者：
**	email:lixx2048@163.com
**  wechat:lixiang6153
**  QQ:941415509
** 日  期：
**	2024/03/15	14:00:00
** 说  明：
**	无
** 版  本：
**	2024/03/15	14:00:00		1.0		lixx2048@163.com
/************************************************************************/
#pragma once
#include <string>
#include <memory>
#include "../util/DateTime.h"

class ModelInfo
{
public:
	ModelInfo();
	virtual ~ModelInfo();

public:
	std::string GetId();
	void SetId(std::string);

	std::string GetName();
	void SetName(std::string);

	std::string GetDescription();
	void SetDescription(std::string);

	std::string GetPath();
	void SetPath(std::string);

	std::string GetCls();
	void SetCls(std::string);

	std::string GetNormal();
	void SetNormal(std::string);

	std::string GetAlarm();
	void SetAlarm(std::string);

	bool GetEnabled();
	void SetEnabled(bool);

	DateTime GetCreateTime();
	void SetCreateTime(DateTime&);

	int GetWidth();
	void SetWidth(int);

	int GetHeight();
	void SetHeight(int);

protected:
	// 模型设备
	std::string m_id = "";
	// 模型名称
	std::string m_name = "";
	// 模型描述
	std::string m_description = "";
	// 模型路径
	std::string m_path = "";
	// 分类列表
	std::string m_cls = "";
	// 正常分类
	std::string m_normal = "";
	// 异常分类
	std::string m_alarm = "";
	// 启用状态
	bool m_enabled = 0;
	// 模型训练图宽
	int m_width = 640;
	// 模型训练图高
	// yolov5默认640x640
	// yolov8默认640x480
	int m_height = 640;
	// 创建时间
	DateTime m_createTime = DateTime::Now();
};

typedef std::shared_ptr<ModelInfo> ModeInfoPtr;